In recent years, because nonvolatile memories equivalent to volatile memories in terms of price and performance have been developed, the use of nonvolatile memories as main storage devices is proposed. Unlike dynamic random access memories (DRAMs) that are generally used as main storage devices, in nonvolatile memories, data is not lost when a power supply is interrupted. Examples of nonvolatile memories used as the main storage devices include phase change memories or the like.
In nonvolatile memories used as main storage devices, a reading speed and a writing speed are high compared with auxiliary storage devices, such as hard disks. Thus, if a nonvolatile memory is used as a main storage device, it is possible to access persistent data at a high speed. In a description below, an auxiliary storage device, such as a hard disk or a solid state drive (SSD), is referred to as “nonvolatile storage”.
In contrast, the reading speed of nonvolatile memories is substantially the same as that of DRAMs; however, the writing speed of nonvolatile memories is lower than that of DRAMs. Thus, it is conceivable to construct the main storage device by using a DRAM and a nonvolatile memory such that primary storage data is stored in the DRAM in order to access the data at a high speed and persistent data is stored in the nonvolatile memory in order to access the data at a speed higher than that of the nonvolatile storage. In this case, the nonvolatile storage is used to permanently store large quantities of data.
In this way, because the processing speeds are different between DRAMs and nonvolatile memories, it is preferable to determine which memory, i.e., a DRAM or a nonvolatile memory, is used to store data in accordance with a purpose of use or a use state. By appropriately placing data to a DRAM or a nonvolatile memory, it is possible to improve the performance of an information processing apparatus.
In view of this, as a conventional technology used in a system that includes storage devices each having a different speed, there is a conventional technology of determining which of a resistive random access memory and a flash memory is used to store data in accordance with a writing frequency. Furthermore, there is a conventional technology of determining which of a volatile memory and a nonvolatile memory is used to write data in accordance with a writing frequency.
Patent Document 1: Japanese Laid-open Patent Publication No. 2014-059820
Patent Document 2: Japanese Patent No. 6113374
However, in a case of a process of guaranteeing persistence of data, such as a database, a log that is the history of a data change needs to be recorded to a nonvolatile storage every time the data is written to a DRAM. By recording logs in a nonvolatile storage, data can be restored when the power supply is interrupted. However, a central processing unit (CPU) cycle is consumed by the process of recording the logs and thus performance overhead is generated. In particular, if data that is frequently written is placed in a DRAM, overhead due to the log records is increased, resulting in a decrease in system performance.
Furthermore, if the conventional technology of determining the placement of data in accordance with a writing frequency is used, because the data that is frequently written is simply placed in a high-speed storage device, overhead due to the log records is increased; therefore, it is difficult to improve the system performance.